# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: farid <farid at archlinuc-br.org>
# Contributor: Archie <Mymaud@gmail.com>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - set LTO=off for gmic-qt

highmem=1

pkgbase=gmic
pkgname=(gmic zart gimp-plugin-gmic krita-plugin-gmic)
pkgver=2.9.7
pkgrel=3
arch=(x86_64)
url="https://gmic.eu/"
license=(custom:CeCILL)
makedepends=(cmake gimp qt5-base fftw openexr opencv eigen graphicsmagick qt5-tools)
source=(https://gmic.eu/files/source/gmic_$pkgver.tar.gz)
sha256sums=('942537487ea722141230579db3cd4331368429c0e33cb38fee1b17aae9557f16')

build() {
  cmake -B build -S gmic-$pkgver \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DENABLE_DYNAMIC_LINKING=ON \
    -DBUILD_LIB_STATIC=OFF \
    -DENABLE_OPENCV=ON
  cmake --build build

  export LDFLAGS="$LDFLAGS -L../build"
  cmake -B build-qt -S gmic-$pkgver/gmic-qt \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DENABLE_DYNAMIC_LINKING=ON \
    -DGMIC_PATH="$srcdir"/gmic-$pkgver/src \
    -DGMIC_QT_HOST=none \
    -DENABLE_LTO=OFF
  cmake --build build-qt

  cmake -B build-gimp -S gmic-$pkgver/gmic-qt \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DENABLE_DYNAMIC_LINKING=ON \
    -DGMIC_PATH="$srcdir"/gmic-$pkgver/src \
    -DGMIC_QT_HOST=gimp \
    -DENABLE_LTO=OFF
  cmake --build build-gimp

  cmake -B build-krita -S gmic-$pkgver/gmic-qt \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DENABLE_DYNAMIC_LINKING=ON \
    -DGMIC_PATH="$srcdir"/gmic-$pkgver/src \
    -DGMIC_QT_HOST=krita \
    -DENABLE_LTO=OFF
  cmake --build build-krita

  mkdir -p build-zart
  cd build-zart
  unset CXXFLAGS # https://github.com/c-koi/zart/issues/14
  qmake ../gmic-$pkgver/zart \
    GMIC_PATH="$srcdir"/gmic-$pkgver/src GMIC_DYNAMIC_LINKING=on QMAKE_CXXFLAGS+=" -DOPENCV2_HEADERS"
  make
}

package_gmic() {
  pkgdesc="GREYC's Magic Image Converter: image processing framework"
  depends=(graphicsmagick opencv fftw)
  optdepends=('qt5-base: for the Qt UI')

  DESTDIR="$pkgdir" cmake --install build
  install -Dm644 gmic-$pkgver/COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE

  DESTDIR="$pkgdir" cmake --install build-qt

  install -Dm644 gmic-$pkgver/resources/gmic_cluts.gmz -t "$pkgdir"/usr/share/gmic
}

package_zart() {
  pkgdesc="A GUI for G'MIC real-time manipulations on the output of a webcam"
  depends=(gmic qt5-base)

  cd build-zart
  install -Dm755 zart -t "$pkgdir"/usr/bin
  install -Dm644 ../gmic-$pkgver/zart/Licence_CeCILL_V2-en.html -t "$pkgdir"/usr/share/licenses/$pkgname
}

package_gimp-plugin-gmic() {
  pkgdesc="Gimp plugin for the G'MIC image processing framework"
  depends=(gimp gmic qt5-base)

  DESTDIR="$pkgdir" cmake --install build-gimp
  install -Dm644 gmic-$pkgver/COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}

package_krita-plugin-gmic() {
  pkgdesc="Krita plugin for the G'MIC image processing framework"
  depends=(krita gmic)

  DESTDIR="$pkgdir" cmake --install build-krita
  install -Dm644 gmic-$pkgver/COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
